package main

func toInt(c byte) int {
	switch c {
	case 'I':
		return 1
	case 'V':
		return 5
	case 'X':
		return 10
	case 'L':
		return 50
	case 'C':
		return 100
	case 'D':
		return 500
	case 'M':
		return 1000
	}
	return 0
}

func romanToInt(s string) int {
	ans := 0
	last := false
	for i := 1; i < len(s); i++ { // 跳过最后一个
		c := toInt(s[i-1])
		c2 := toInt(s[i])
		if c < c2 {
			last = i == len(s)-1
			ans += c2 - c
			i++
		} else {
			ans += c
		}
	}
	if !last {
		ans += toInt(s[len(s)-1])
	}
	return ans
}

func main() {
	println(romanToInt("III"))
	println(romanToInt("IV"))
	println(romanToInt("IX"))
	println(romanToInt("LVIII"))
	println(romanToInt("MCMXCIV"))
	println(romanToInt("MCMXCI"))
}
